
uniform vec3 U_LightPos;
uniform vec4 U_DiffuseLightColor;
uniform vec4 U_DiffuseMaterial;

uniform vec4 U_AmbientLightColor;
uniform vec4 U_AmbientMaterial;

varying vec4 V_Normal;

void main()
{
	//ambient
	vec4 ambientColor = U_AmbientLightColor * U_AmbientMaterial;

	//diffuse
	//L vecotr
	vec3 L = U_LightPos;
	L = normalize(L);
	//N vector
	vec3 n = normalize(V_Normal);

	float diffuseIntensity = max(0.0, dot(L, n));

	vec4 diffuseColor = U_DiffuseLightColor * U_DiffuseMaterial * diffuseIntensity;

	gl_FragColor = ambientColor + diffuseColor;
}